home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet internetowy / Przegladarki internetowe / Mozilla Seamonkey 1.0.5 pl / seamonkey-1.0.5.pl-PL.win32.installer.exe / BROWSER.XPI / install.js
Encoding:
JavaScript  |  2006-09-14  |  34.6 KB  |  840 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace(dirPath, spaceRequired)
  3. {
  4.   var spaceAvailable;
  5.  
  6.   // Get the available disk space on the given path
  7.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  8.  
  9.   // Convert the available disk space into kilobytes
  10.   spaceAvailable = parseInt(spaceAvailable / 1024);
  11.  
  12.   // do the verification
  13.   if(spaceAvailable < spaceRequired)
  14.   {
  15.     logComment("Insufficient disk space: " + dirPath);
  16.     logComment("  required : " + spaceRequired + " K");
  17.     logComment("  available: " + spaceAvailable + " K");
  18.     return(false);
  19.   }
  20.  
  21.   return(true);
  22. }
  23.  
  24. // this function deletes a file if it exists
  25. function deleteThisFile(dirKey, file)
  26. {
  27.   var fFileToDelete;
  28.  
  29.   fFileToDelete = getFolder(dirKey, file);
  30.   logComment("File to delete: " + fFileToDelete);
  31.   if(File.isFile(fFileToDelete))
  32.   {
  33.     File.remove(fFileToDelete);
  34.     return(true);
  35.   }
  36.   else
  37.     return(false);
  38. }
  39.  
  40. // this function deletes a folder if it exists
  41. function deleteThisFolder(dirKey, folder, recursiveDelete)
  42. {
  43.   var fToDelete;
  44.  
  45.   if(typeof recursiveDelete == "undefined")
  46.     recursiveDelete = true;
  47.  
  48.   fToDelete = getFolder(dirKey, folder);
  49.   logComment("folder to delete: " + fToDelete);
  50.   if(File.isDirectory(fToDelete))
  51.   {
  52.     File.dirRemove(fToDelete, recursiveDelete);
  53.     return(true);
  54.   }
  55.   else
  56.     return(false);
  57. }
  58.  
  59. // OS type detection
  60. // which platform?
  61. function getPlatform()
  62. {
  63.   var platformStr;
  64.   var platformNode;
  65.  
  66.   if('platform' in Install)
  67.   {
  68.     platformStr = new String(Install.platform);
  69.  
  70.     if (!platformStr.search(/^Macintosh/))
  71.       platformNode = 'mac';
  72.     else if (!platformStr.search(/^Win/))
  73.       platformNode = 'win';
  74.     else if (!platformStr.search(/^OS\/2/))
  75.       platformNode = 'win';
  76.     else
  77.       platformNode = 'unix';
  78.   }
  79.   else
  80.   {
  81.     var fOSMac  = getFolder("Mac System");
  82.     var fOSWin  = getFolder("Win System");
  83.  
  84.     logComment("fOSMac: "  + fOSMac);
  85.     logComment("fOSWin: "  + fOSWin);
  86.  
  87.     if(fOSMac != null)
  88.       platformNode = 'mac';
  89.     else if(fOSWin != null)
  90.       platformNode = 'win';
  91.     else
  92.       platformNode = 'unix';
  93.   }
  94.  
  95.   return platformNode;
  96. }
  97.  
  98. function registerProgramFolderKey(winreg, fFolderPath)
  99. {
  100.   var subkey;
  101.   var err;
  102.  
  103.   /* set the Program Folder Path in the Mozilla key in the Windows Registry */
  104.   winreg.createKey("SOFTWARE\\mozilla.org","");
  105.  
  106.   subkey  = "SOFTWARE\\mozilla.org\\SeaMonkey";
  107.   winreg.createKey(subkey,"");
  108.   err     = winreg.setValueString(subkey, "CurrentVersion", "1.0.5 (pl)");
  109.  
  110.   subkey  = "SOFTWARE\\mozilla.org\\SeaMonkey\\1.0.5 (pl)";
  111.   winreg.createKey(subkey,"");
  112.  
  113.   subkey  = "SOFTWARE\\mozilla.org\\SeaMonkey\\1.0.5 (pl)\\Main";
  114.   winreg.createKey(subkey,"");
  115.   err     = winreg.setValueString(subkey, "Program Folder Path", fFolderPath);
  116. }
  117.  
  118. function createShortcuts() 
  119. {
  120.   var subkey;
  121.   var valname;
  122.   var szStartMenuPrograms;
  123.   var szStartMenu;
  124.   var szFolderDesktop;
  125.   var szFolderQuickLaunch;
  126.   var szFolderSendTo;
  127.   var szFolderAppData;
  128.   var szStartupFolder;
  129.   var winreg;
  130.   var fWindows;
  131.   var fTemp;
  132.   var fProgram;
  133.   var fDefShortcuts;
  134.   var fileExe;
  135.   var fileReadme;
  136.   var fileLicense;
  137.   var scExeDesc;
  138.   var scReadmeDesc;
  139.   var scLicenseDesc;
  140.   var scProfileDesc;
  141.   var scProfileDescParam;
  142.   var scFolderName;
  143.   var fFolderDesktop;
  144.   var fFolderPath;
  145.   var fFolderPathStr;
  146.   var fFolderQuickLaunch;
  147.   var is_winnt;
  148.   var szCurrentVersion;
  149.   var folderQuickLaunchExists;
  150.  
  151.   winreg               = getWinRegistry();
  152.   fWindows             = getFolder("Windows");
  153.   fProgram             = getFolder("Program");
  154.   fDefShortcuts        = getFolder("Program","defaults/shortcuts");
  155.   fTemp                = fProgram + "SeaMonkey.exe";
  156.   fileExe              = getFolder("file:///", fTemp);
  157.   fileReadme           = getFolder("file:///", fProgram + "readme.txt");
  158.   fileLicense          = getFolder("file:///", fProgram + "license.txt");
  159.   scExeDesc            = "SeaMonkey";
  160.   scReadmeDesc         = "Czytaj To";
  161.   scLicenseDesc        = "Licencja";
  162.   scProfileDesc        = "Mened\u017cer profili";
  163.   scProfileDescParam   = "-ProfileManager";
  164.   scFolderName         = "SeaMonkey";
  165.   if(winreg != null) 
  166.   {
  167.     /* determine if the script is running under NT or not */
  168.     winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
  169.     subkey              = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
  170.     szCurrentVersion    = winreg.getValueString(subkey, "CurrentVersion");
  171.     logComment("szCurrentVersion: " + szCurrentVersion);
  172.     if((szCurrentVersion == "") || (szCurrentVersion == null))
  173.     {
  174.       is_winnt = false;
  175.     }
  176.     else
  177.     {
  178.       is_winnt = true;
  179.     }
  180.  
  181.     logComment("is_winnt value: " + is_winnt);
  182.     if(!is_winnt || restrictedAccess)
  183.     {
  184.       winreg.setRootKey(winreg.HKEY_CURRENT_USER);
  185.       subkey              = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
  186.       szStartMenuPrograms = winreg.getValueString(subkey, "Programs");
  187.       szStartMenu         = winreg.getValueString(subkey, "Start Menu");
  188.       szFolderDesktop     = winreg.getValueString(subkey, "Desktop");
  189.       szStartupFolder     = winreg.getValueString(subkey, "Startup");
  190.     }
  191.     else
  192.     {
  193.       winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
  194.       subkey              = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
  195.       szStartMenuPrograms = winreg.getValueString(subkey, "Common Programs");
  196.       szStartMenu         = winreg.getValueString(subkey, "Common Start Menu");
  197.       szFolderDesktop     = winreg.getValueString(subkey, "Common Desktop");
  198.       szStartupFolder     = winreg.getValueString(subkey, "Common Startup");
  199.    }
  200.  
  201.     winreg.setRootKey(winreg.HKEY_CURRENT_USER);
  202.     subkey              = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
  203.     szFolderSendTo      = winreg.getValueString(subkey, "SendTo");
  204.  
  205.     subkey              = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders";
  206.     szFolderAppData     = winreg.getValueString(subkey, "AppData");
  207.  
  208.     // locate the Quick Launch folder
  209.     szFolderQuickLaunch     = szFolderAppData + "\\Microsoft\\Internet Explorer\\Quick Launch";
  210.     fFolderQuickLaunch      = getFolder("file:///", szFolderQuickLaunch);
  211.     folderQuickLaunchExists = File.isDirectory(fFolderQuickLaunch);
  212.     if(!folderQuickLaunchExists)
  213.     {
  214.       subkey                  = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\GrpConv\\MapGroups";
  215.       szFolderQuickLaunch     = winreg.getValueString(subkey, "Quick Launch");
  216.       folderQuickLaunchExists = File.isDirectory(fFolderPath);
  217.       if(folderQuickLaunchExists)
  218.         fFolderQuickLaunch = getFolder("file:///", szFolderQuickLaunch);
  219.     }
  220.     logComment("folderQuickLaunchExists: " + folderQuickLaunchExists);
  221.  
  222.     subkey              = "SOFTWARE\\mozilla.org\\SeaMonkey\\1.0.5 (pl)\\Main";
  223.     fFolderPathStr      = winreg.getValueString(subkey, "Program Folder Path");
  224.     if((fFolderPathStr == "") || (fFolderPathStr == null))
  225.     {
  226.       fTemp       = szStartMenuPrograms + "\\" + scFolderName;
  227.       fFolderPath = getFolder("file:///", fTemp);
  228.     }
  229.     else
  230.     {
  231.       /* convert the path string to a path folder object */
  232.       fFolderPath = getFolder("file:///", fFolderPathStr);
  233.     }
  234.     /* convert the path string to a path folder object */
  235.     fFolderDesktop = getFolder("file:///", szFolderDesktop);
  236.  
  237.     logComment("Folder StartMenuPrograms: " + szStartMenuPrograms);
  238.     logComment("Folder StartMenu        : " + szStartMenu);
  239.     logComment("Folder FolderDesktop    : " + szFolderDesktop);
  240.     logComment("Folder FolderSendTo     : " + szFolderSendTo);
  241.     logComment("Folder FolderQuickLaunch: " + szFolderQuickLaunch);
  242.     logComment("fileExe                 : " + fileExe);
  243.     logComment("fFolderPath             : " + fFolderPath);
  244.     logComment("scExeDesc               : " + scExeDesc);
  245.     logComment("fProgram                : " + fProgram);
  246.  
  247.     /* explicitly create the fFolderPath even though the windowsShortcut function creates the folder.
  248.      * This is so that the folder creation gets logged for uninstall to remove it. */
  249.     if(!File.exists(fFolderPath))
  250.       File.dirCreate(fFolderPath);
  251.     if(!File.exists(fDefShortcuts))
  252.       File.dirCreate(fDefShortcuts);
  253.  
  254.     /* create the shortcuts */
  255.     File.windowsShortcut(fileExe, fFolderDesktop, scExeDesc,     fProgram,  "",                 fileExe, 0);
  256.     File.windowsShortcut(fileExe, fFolderPath,    scExeDesc,     fProgram,  "",                 fileExe, 0);
  257.     File.windowsShortcut(fileExe, fDefShortcuts,  scExeDesc,     fProgram,  "",                 fileExe, 0);
  258.     File.windowsShortcut(fileExe, fFolderPath,    scProfileDesc, fProgram,  scProfileDescParam, fileExe, 0);
  259.     File.windowsShortcut(fileReadme,  fFolderPath, scReadmeDesc,  fProgram, "",                 fileReadme, 0);
  260.     File.windowsShortcut(fileLicense, fFolderPath, scLicenseDesc, fProgram, "",                 fileLicense, 0);
  261.  
  262.     // create shortcut in the Quick Launch folder
  263.     if(folderQuickLaunchExists)
  264.       File.windowsShortcut(fileExe, fFolderQuickLaunch, scExeDesc, fProgram,  "", fileExe, 0);
  265.  
  266.     if(!restrictedAccess)
  267.     {
  268.       winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
  269.       registerProgramFolderKey(winreg, fFolderPath);
  270.     }
  271.  
  272.     winreg.setRootKey(winreg.HKEY_CURRENT_USER);
  273.     registerProgramFolderKey(winreg, fFolderPath);
  274.  
  275.     /* remove turbo mode shortcut */
  276.  
  277.     fFolderPath = getFolder("file:///", szStartupFolder);
  278.                                     
  279.     /* remove shortcut from the startup folder */
  280.  
  281.     basename = "SeaMonkey.exe"
  282.     fTemp = fFolderPath + basename + ".lnk";
  283.     fFolderPath = getFolder("file:///", fTemp);
  284.     if (File.exists(fFolderPath)) 
  285.     { 
  286.         logComment("Removing Quick Launch shortcut from Windows startup folder\n");
  287.         fileDelete(fFolderPath);
  288.     }
  289.  
  290.     subkey  = "SOFTWARE\\mozilla.org\\SeaMonkey\\1.0.5 (pl)\\Setup";
  291.     regvalue = winreg.getValueString(subkey, "browserargs");
  292.  
  293.     /* log this so if the user turns on turbo mode in the browser the uninstaller will undo it */
  294.  
  295.     logComment( "store registry value string: HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run [SeaMonkey Quick Launch]");
  296.     if (regvalue && regvalue != undefined && regvalue.length != 0) 
  297.     {
  298.         var value = new String(regvalue);
  299.         var index = value.indexOf("turbo");
  300.         if (index != -1) 
  301.         {
  302.             var index2 = value.indexOf("=", index);
  303.             if (index2 != -1) 
  304.             {
  305.                 turboarg = value.slice(index2 + 1, index2 + 2);
  306.                 winreg.setRootKey(winreg.HKEY_CURRENT_USER);
  307.                 subkey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
  308.                 valname = "SeaMonkey Quick Launch";
  309.                 if ( turboarg == "Y" || turboarg == "y") 
  310.                 {
  311.                     fTemp = fileExe;
  312.                     fileExe = getFolder("file:///", fTemp);
  313.                     newKey = '"' + fileExe + '"' + ' -turbo';
  314.                     winreg.createKey(subkey,"");
  315.                     winreg.setValueString(subkey, valname, newKey);
  316.                 } 
  317.                 else 
  318.                 {
  319.                     winreg.deleteValue(subkey, valname);
  320.                 }
  321.             }
  322.         }
  323.     }
  324.   }
  325.   else
  326.   {
  327.     logComment("winreg is null");
  328.   }
  329. }
  330. function IsWinnt()
  331. {
  332.   /* Determines if the script is running under NT or not.
  333.    *
  334.    */
  335.   var winreg = getWinRegistry();
  336.   var subkey;
  337.   var szCurrentVersion;
  338.  
  339.   winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
  340.   subkey              = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";
  341.   szCurrentVersion    = winreg.getValueString(subkey, "CurrentVersion");
  342.   logComment("szCurrentVersion: " + szCurrentVersion);
  343.   if((szCurrentVersion == "") || (szCurrentVersion == null))
  344.   {
  345.     return false;
  346.   }
  347.   else
  348.   {
  349.     return true;
  350.   }
  351. }
  352.  
  353. function registerMainKeys(winreg)
  354. {
  355.   var subkey;  //the name of the subkey you are poking around in
  356.   var data;
  357.   var err;
  358.  
  359.   winreg.createKey("SOFTWARE\\mozilla.org","");
  360.  
  361.   subkey  = "SOFTWARE\\mozilla.org\\SeaMonkey";
  362.   winreg.createKey(subkey,"");
  363.   err     = winreg.setValueString(subkey, "CurrentVersion", "1.0.5 (pl)");
  364.  
  365.   subkey  = "SOFTWARE\\mozilla.org\\SeaMonkey\\1.0.5 (pl)";
  366.   winreg.createKey(subkey,"");
  367.  
  368.   subkey  = "SOFTWARE\\mozilla.org\\SeaMonkey\\1.0.5 (pl)\\Main";
  369.   winreg.createKey(subkey,"");
  370.  
  371.   err     = winreg.setValueString(subkey, "Install Directory", fProgram);
  372.  
  373.   // The following keys are required to be created to supply information
  374.   // about the location of the Gecko Embedded Client to 3rd party apps.
  375.   // "SOFTWARE\\Mozilla" must not be localized!
  376.   subkey  = "SOFTWARE\\Mozilla\\SeaMonkey 1.0.5";
  377.   winreg.createKey(subkey,"");
  378.   err     = winreg.setValueString(subkey, "GeckoVer", "$GreVersion$");
  379.  
  380.   subkey  = "SOFTWARE\\Mozilla\\SeaMonkey 1.0.5\\Extensions";
  381.   winreg.createKey(subkey,"");
  382.   err     = winreg.setValueString(subkey, "Components", fProgram + "Components");
  383.   err     = winreg.setValueString(subkey, "Plugins", fProgram + "Plugins");
  384.  
  385.   subkey  = "SOFTWARE\\Mozilla\\SeaMonkey 1.0.5\\bin";
  386.   winreg.createKey(subkey,"");
  387.   err     = winreg.setValueString(subkey, "PathToExe", fProgram + "SeaMonkey.exe");
  388.  
  389.   subkey  = "SOFTWARE\\mozilla.org\\SeaMonkey\\1.0.5 (pl)\\Main";
  390.   err     = winreg.setValueString(subkey, "PathToExe", fProgram + "SeaMonkey.exe");
  391.  
  392.   // Register as a windows XP internet browser
  393.   if( IsWinnt() )
  394.   {
  395.     subkey = "Software\\Clients\\StartMenuInternet\\SeaMonkey.exe";
  396.     winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
  397.  
  398.     winreg.createKey(subkey, "");
  399.     winreg.createKey(subkey + "\\DefaultIcon", "");
  400.     winreg.createKey(subkey + "\\shell", "");
  401.     winreg.createKey(subkey + "\\shell\\open", "");
  402.     winreg.createKey(subkey + "\\shell\\open\\command", "");
  403.     winreg.createKey(subkey + "\\InstallInfo", "");
  404.     winreg.setValueString(subkey, "", "SeaMonkey");
  405.  
  406.     // path does not need to be quoted per MS doc
  407.     data = fProgram + "SeaMonkey.exe,0";
  408.     winreg.setValueString(subkey + "\\DefaultIcon", "", data);
  409.  
  410.     data = "\"" + fProgram + "SeaMonkey.exe\"";
  411.     winreg.setValueString(subkey + "\\shell\\open\\command", "", data);
  412.  
  413.     data = "\"" + fProgram + "uninstall\\SeaMonkeyUninstall.exe\" /ua \"1.0.5 (pl)\" /hs browser";
  414.     winreg.setValueString(subkey + "\\InstallInfo", "HideIconsCommand", data);
  415.  
  416.     winreg.setValueNumber(subkey + "\\InstallInfo", "IconsVisible", 1);
  417.  
  418.     data = "\"" + fProgram + "SeaMonkey.exe\" -silent -nosplash -setDefaultBrowser ";
  419.     winreg.setValueString(subkey + "\\InstallInfo", "ReinstallCommand", data);
  420.  
  421.     data = "\"" + fProgram + "uninstall\\SeaMonkeyUninstall.exe\" /ua \"1.0.5 (pl)\" /ss browser";
  422.     winreg.setValueString(subkey + "\\InstallInfo", "ShowIconsCommand", data);
  423.   }
  424. }
  425.  
  426. function updateWinReg()
  427. {
  428.   //Notes:
  429.   // can't use a double backslash before subkey - Windows already puts it in.
  430.   // subkeys have to exist before values can be put in.
  431.   var winreg = getWinRegistry();
  432.   var subkey;  //the name of the subkey you are poking around in
  433.   var err;
  434.   var ikwDefined;
  435.  
  436.   if(winreg != null) 
  437.   {
  438.     /* This will check to see if the user has restricted access or not.
  439.      * It checks to see if HKEY_LOCALMACHINE\SOFTWARE is writable.  If
  440.      * it is, then access is not restricted.  This is only used to
  441.      * determine which Desktop, Programs, and Start Menu folders
  442.      * are to used: common or per user
  443.      */
  444.     restrictedAccess = false;
  445.     ikwDefined = typeof(winreg.isKeyWritable);
  446.     logComment("winreg.isKeyWritable(): " + ikwDefined);
  447.     if(ikwDefined == "function")
  448.     {
  449.       winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
  450.       if(!winreg.isKeyWritable("SOFTWARE"))
  451.         restrictedAccess = true;
  452.     }
  453.  
  454.     logComment("restrictedAccess value: " + restrictedAccess);
  455.     if(!restrictedAccess)
  456.     {
  457.       winreg.setRootKey(winreg.HKEY_LOCAL_MACHINE);
  458.       registerMainKeys(winreg);
  459.  
  460.       // set the App Paths key here
  461.       subkey  = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\SeaMonkey.exe";
  462.       winreg.createKey(subkey,"");
  463.       err     = winreg.setValueString(subkey, "", fProgram + "SeaMonkey.exe");
  464.       err     = winreg.setValueString(subkey, "Path", fProgram);
  465.     }
  466.  
  467.     winreg.setRootKey(winreg.HKEY_CURRENT_USER);
  468.     registerMainKeys(winreg);
  469.   }
  470. }
  471.  
  472. function upgradeCleanup()
  473. {
  474.   // Obsolete files from Netscape 6.0 and Netscape 6.01 that
  475.   // need to be cleaned up.
  476.   deleteThisFile("Program",    "oji.dll");
  477.   deleteThisFile("Program",    "jsdom.dll");
  478.   deleteThisFile("Program",    "img3250.dll");
  479.   deleteThisFile("Program",    "gkgfxwin.dll");
  480.   deleteThisFile("Program",    "gkwidget.dll");
  481.   deleteThisFile("Program",    "jpeg3250.dll");
  482.   deleteThisFile("Program",    "mozreg.dll");
  483.   deleteThisFile("Program",    "ISimpleDOMNodeMarshal.dll");
  484.   deleteThisFile("Program",    "ISimpleDOMDocumentMarshal.dll");
  485.   deleteThisFile("Program",    "defaults/pref/config.js");
  486.   deleteThisFile("Program",    "defaults/pref/initpref.js");
  487.   deleteThisFile("Program",    "defaults/pref/psm-glue.js");
  488.   deleteThisFile("Program",    "defaults/pref/typeaheadfind.js");
  489.   deleteThisFile("Program",    "defaults/pref/bug307259.js");
  490.   deleteThisFile("Program",    "defaults/wallet/URLFieldSchema.tbl");
  491.   deleteThisFile("Program",    "res/samples/collapsing.css");
  492.   deleteThisFile("Program",    "res/samples/collapsing.xul");
  493.   deleteThisFile("Program",    "res/samples/import-test.html");
  494.   deleteThisFile("Program",    "res/samples/sampleimages/xpconnect-sample.html");
  495.   deleteThisFile("Components", "gkhtml.dll");
  496.   deleteThisFile("Components", "mozucth.dll");
  497.   deleteThisFile("Components", "mozxfer.dll");
  498.   deleteThisFile("Components", "nsgif.dll");
  499.   deleteThisFile("Components", "nsjpg.dll");
  500.   deleteThisFile("Components", "nsmng.dll");
  501.   deleteThisFile("Components", "nspng.dll");
  502.   deleteThisFile("Components", "smime.dll");
  503.   deleteThisFile("Components", "AcctIdl.dll");
  504.   deleteThisFile("Components", "chardetc.dll");
  505.   deleteThisFile("Components", "evntloop.dll");
  506.   deleteThisFile("Components", "nativapp.dll");
  507.   deleteThisFile("Components", "universalchardet.dll");
  508.   deleteThisFile("Components", "ucvja.dll");
  509.   deleteThisFile("Components", "ucvko.dll");
  510.   deleteThisFile("Components", "ucvtw.dll");
  511.   deleteThisFile("Components", "ucvtw2.dll");
  512.   deleteThisFile("Components", "ucvlatin.dll");
  513.   deleteThisFile("Components", "ucvcn.dll");
  514.   deleteThisFile("Components", "ucvibm.dll");
  515.   deleteThisFile("Components", "txtsvc.dll");
  516.   deleteThisFile("Components", "gfx2.dll");
  517.   deleteThisFile("Components", "gfx2.xpt");
  518.   deleteThisFile("Components", "imggif.dll");
  519.   deleteThisFile("Components", "imgjpeg.dll");
  520.   deleteThisFile("Components", "imgpng.dll");
  521.   deleteThisFile("Components", "imgbmp.dll");
  522.   deleteThisFile("Components", "imgxbm.dll");
  523.   deleteThisFile("Components", "imgppm.dll");
  524.   deleteThisFile("Components", "ucharuti.dll");
  525.   deleteThisFile("Components", "chardet.dll");
  526.   deleteThisFile("Components", "lwbrk.dll");
  527.   deleteThisFile("Components", "nslocale.dll");
  528.   deleteThisFile("Components", "strres.dll");
  529.   deleteThisFile("Components", "mozbrwsr.dll");
  530.   deleteThisFile("Components", "nkcache.dll");
  531.   deleteThisFile("Components", "jsloader.dll");
  532.   deleteThisFile("Components", "gkcontent.dll");
  533.   deleteThisFile("Components", "psm.xpt");
  534.   deleteThisFile("Components", "typeaheadfind.xpt");
  535.   deleteThisFile("Components", "xmlextras_interfaceinfo.xpt");
  536.   deleteThisFile("Components", "xmlsoap.xpt");
  537.   deleteThisFile("Components", "xmlschema.xpt");
  538.   deleteThisFile("Components", "wsdl.xpt");
  539.   deleteThisFile("Components", "wsproxy.xpt");
  540.   deleteThisFile("Components", "compreg.dat");
  541.   deleteThisFile("Components", "xpti.dat");
  542.   deleteThisFile("Components", "xptitemp.dat");
  543.   deleteThisFile("Chrome",     "chrome.rdf");
  544.   deleteThisFile("Chrome",     "overlays.rdf");
  545.   deleteThisFile("Chrome",     "stylesheets.rdf");
  546.   deleteThisFile("Chrome",     "forms.jar");
  547.   deleteThisFile("Chrome",     "typeaheadfind.jar");
  548.   deleteThisFolder("Chrome",   "overlayinfo");
  549.   deleteThisFolder("Components",   "Netscape/Gecko1.0");
  550.   deleteThisFolder("Components",   "Netscape/Netscape6.00");
  551.   deleteThisFolder("Components",   "Netscape/Netscape6.01");
  552.   deleteThisFolder("Components",   "Netscape/Netscape6.10");
  553.   deleteThisFolder("Components",   "Netscape/Netscape6.20");
  554.   deleteThisFolder("Components",   "Netscape/Netscape6.21");
  555.   deleteThisFolder("Components",   "Netscape/Netscape6.22");
  556.   deleteThisFolder("Components",   "Netscape/Netscape6.23");
  557.   deleteThisFolder("Components",   "Netscape/Mozilla1.2");
  558.   deleteThisFolder("Components",   "Netscape/MozillaBranch");
  559.  
  560.   if(!gGreLocal)
  561.   {
  562.     // If GRE is not local, meaning it's installed in a 
  563.     // global area, then cleanup  obsolete files that are
  564.     // now part of the GRE installer package.
  565.     deleteThisFile("Program",    "gkgfx.dll");
  566.     deleteThisFile("Program",    "js3250.dll");
  567.     deleteThisFile("Program",    "jsj3250.dll");
  568.     deleteThisFile("Program",    "mozctl.dll");
  569.     deleteThisFile("Program",    "mozctlx.dll");
  570.     deleteThisFile("Program",    "nss3.dll");
  571.     deleteThisFile("Program",    "nssckbi.dll");
  572.     deleteThisFile("Program",    "smime3.dll");
  573.     deleteThisFile("Program",    "softokn3.dll");
  574.     deleteThisFile("Program",    "ssl3.dll");
  575.     deleteThisFile("Program",    "xpcom.dll");
  576.     deleteThisFile("Program",    "xpcom_core.dll");
  577.     deleteThisFile("Program",    "xpistub.dll");
  578.     deleteThisFile("Program",    "zlib.dll");
  579.     deleteThisFile("Program",    "mozz.dll");
  580.     deleteThisFile("Components", "accessibility.xpt");
  581.     deleteThisFile("Components", "content_base.xpt");
  582.     deleteThisFile("Components", "docshell_base.xpt");
  583.     deleteThisFile("Components", "dom.xpt");
  584.     deleteThisFile("Components", "dom_base.xpt");
  585.     deleteThisFile("Components", "dom_core.xpt");
  586.     deleteThisFile("Components", "dom_css.xpt");
  587.     deleteThisFile("Components", "dom_events.xpt");
  588.     deleteThisFile("Components", "dom_html.xpt");
  589.     deleteThisFile("Components", "dom_range.xpt");
  590.     deleteThisFile("Components", "dom_stylesheets.xpt");
  591.     deleteThisFile("Components", "dom_traversal.xpt");
  592.     deleteThisFile("Components", "dom_views.xpt");
  593.     deleteThisFile("Components", "dom_xbl.xpt");
  594.     deleteThisFile("Components", "dom_xul.xpt");
  595.     deleteThisFile("Components", "gfx.xpt");
  596.     deleteThisFile("Components", "history.xpt");
  597.     deleteThisFile("Components", "htmlparser.xpt");
  598.     deleteThisFile("Components", "intl.xpt");
  599.     deleteThisFile("Components", "jar.xpt");
  600.     deleteThisFile("Components", "jsurl.xpt");
  601.     deleteThisFile("Components", "layout_base.xpt");
  602.     deleteThisFile("Components", "layout_printing.xpt");
  603.     deleteThisFile("Components", "layout_xul.xpt");
  604.     deleteThisFile("Components", "locale.xpt");
  605.     deleteThisFile("Components", "necko_about.xpt");
  606.     deleteThisFile("Components", "necko_cache.xpt");
  607.     deleteThisFile("Components", "necko_data.xpt");
  608.     deleteThisFile("Components", "necko_dns.xpt");
  609.     deleteThisFile("Components", "necko_file.xpt");
  610.     deleteThisFile("Components", "necko_ftp.xpt");
  611.     deleteThisFile("Components", "necko_http.xpt");
  612.     deleteThisFile("Components", "necko_jar.xpt");
  613.     deleteThisFile("Components", "necko_res.xpt");
  614.     deleteThisFile("Components", "necko_strconv.xpt");
  615.     deleteThisFile("Components", "necko_viewsource.xpt");
  616.     deleteThisFile("Components", "plugin.xpt");
  617.     deleteThisFile("Components", "pref.xpt");
  618.     deleteThisFile("Components", "regviewr.dll");
  619.     deleteThisFile("Components", "txtsvc.xpt");
  620.     deleteThisFile("Components", "unicharutil.xpt");
  621.     deleteThisFile("Components", "uriloader.xpt");
  622.     deleteThisFile("Components", "webbrowserpersist.xpt");
  623.     deleteThisFile("Components", "webBrowser_core.xpt");
  624.     deleteThisFile("Components", "widget.xpt");
  625.     deleteThisFile("Components", "windowwatcher.xpt");
  626.     deleteThisFile("Components", "xpcom_base.xpt");
  627.     deleteThisFile("Components", "xpcom_components.xpt");
  628.     deleteThisFile("Components", "xpcom_ds.xpt");
  629.     deleteThisFile("Components", "xpcom_io.xpt");
  630.     deleteThisFile("Components", "xpcom_thread.xpt");
  631.     deleteThisFile("Components", "xpcom_xpti.xpt");
  632.     deleteThisFile("Components", "xpconnect.xpt");
  633.     deleteThisFile("Components", "xpinstall.xpt");
  634.     deleteThisFile("Components", "xuldoc.xpt");
  635.     deleteThisFile("Components", "accessibility.dll");
  636.     deleteThisFile("Components", "appshell.dll");
  637.     deleteThisFile("Components", "appshell.xpt");
  638.     deleteThisFile("Components", "caps.dll");
  639.     deleteThisFile("Components", "caps.xpt");
  640.     deleteThisFile("Components", "chrome.dll");
  641.     deleteThisFile("Components", "chrome.xpt");
  642.     deleteThisFile("Components", "cookie.dll");
  643.     deleteThisFile("Components", "docshell.dll");
  644.     deleteThisFile("Components", "editor.dll");
  645.     deleteThisFile("Components", "editor.xpt");
  646.     deleteThisFile("Components", "embedcomponents.dll");
  647.     deleteThisFile("Components", "gkgfxwin.dll");
  648.     deleteThisFile("Components", "gklayout.dll");
  649.     deleteThisFile("Components", "gkparser.dll");
  650.     deleteThisFile("Components", "gkplugin.dll");
  651.     deleteThisFile("Components", "gkview.dll");
  652.     deleteThisFile("Components", "gkwidget.dll");
  653.     deleteThisFile("Components", "i18n.dll");
  654.     deleteThisFile("Components", "imgicon.dll");
  655.     deleteThisFile("Components", "imgicon.xpt");
  656.     deleteThisFile("Components", "imglib2.dll");
  657.     deleteThisFile("Components", "imglib2.xpt");
  658.     deleteThisFile("Components", "imgmng.dll");
  659.     deleteThisFile("Components", "jar50.dll");
  660.     deleteThisFile("Components", "jsdom.dll");
  661.     deleteThisFile("Components", "jsurl.dll");
  662.     deleteThisFile("Components", "necko.dll");
  663.     deleteThisFile("Components", "necko.xpt");
  664.     deleteThisFile("Components", "necko2.dll");
  665.     deleteThisFile("Components", "necko_cookie.xpt");
  666.     deleteThisFile("Components", "oji.dll");
  667.     deleteThisFile("Components", "oji.xpt");
  668.     deleteThisFile("Components", "pipboot.dll");
  669.     deleteThisFile("Components", "pipboot.xpt");
  670.     deleteThisFile("Components", "pipnss.dll");
  671.     deleteThisFile("Components", "pipnss.xpt");
  672.     deleteThisFile("Components", "profile.dll");
  673.     deleteThisFile("Components", "profile.xpt");
  674.     deleteThisFile("Components", "rdf.dll");
  675.     deleteThisFile("Components", "rdf.xpt");
  676.     deleteThisFile("Components", "shistory.dll");
  677.     deleteThisFile("Components", "shistory.xpt");
  678.     deleteThisFile("Components", "uconv.dll");
  679.     deleteThisFile("Components", "uconv.xpt");
  680.     deleteThisFile("Components", "ucvmath.dll");
  681.     deleteThisFile("Components", "urildr.dll");
  682.     deleteThisFile("Components", "wallet.dll");
  683.     deleteThisFile("Components", "wallet.xpt");
  684.     deleteThisFile("Components", "webbrwsr.dll");
  685.     deleteThisFile("Components", "xmlextras.dll");
  686.     deleteThisFile("Components", "xmlextras.xpt");
  687.     deleteThisFile("Components", "xpc3250.dll");
  688.     deleteThisFile("Components", "xpinstal.dll");
  689.     deleteThisFile("Components", "xppref32.dll");
  690.     deleteThisFile("Components", "p3p.dll");
  691.   }
  692. }
  693.  
  694. // main
  695. var srDest;
  696. var err;
  697. var err2;
  698. var fProgram;
  699. var fWindowsSystem;
  700. var fileComponentRegStr;
  701. var fileComponentReg;
  702. var restrictedAccess;
  703. var fileToRegister;
  704. var args;
  705. var gGreLocal = false;
  706.  
  707. args = new String(Install.arguments);
  708. logComment("args: " + args);
  709.  
  710. // If -gGreLocal is passed in, then we need to *not* cleanup GRE files if they
  711. // exist in the browser dir.
  712. // The default is to delete any GRE files because we default GRE will be global.
  713. if(args == "-greLocal")
  714.   gGreLocal = true;
  715.  
  716. srDest = 11681;
  717. err    = initInstall("SeaMonkey", "Browser", "1.0.5.2006091003"); 
  718. logComment("initInstall: " + err);
  719.  
  720. fProgram  = getFolder("Program");
  721. fWindowsSystem = getFolder("Win System");
  722. logComment("fProgram: " + fProgram);
  723.  
  724. if(verifyDiskSpace(fProgram, srDest))
  725. {
  726.   setPackageFolder(fProgram);
  727.  
  728.   upgradeCleanup();
  729.   err = addDirectory("",
  730.                      "1.0.5.2006091003",
  731.                      "bin",              // dir name in jar to extract 
  732.                      fProgram,           // Where to put this file (Returned from GetFolder) 
  733.                      "",                 // subdir name to create relative to fProgram
  734.                      true);              // Force Flag 
  735.   logComment("addDirectory() of Program returned: " + err);
  736.  
  737.   // check return value
  738.   if( err == SUCCESS )
  739.   {
  740.     fileToRegister = getFolder(fProgram, "AccessibleMarshal.dll");
  741.     err2           = File.windowsRegisterServer(fileToRegister);
  742.     logComment("windowsRegisterServer() returned: " + err2);
  743.     updateWinReg();  // Finish registering above marshalling dll's
  744.  
  745.     createShortcuts();
  746.  
  747.     // we don't want to fail on errors for the above two
  748.     resetError();
  749.  
  750.     // register chrome
  751.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","toolkit.jar"),"content/global-platform/");
  752.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/communicator-platform/");
  753.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/navigator-platform/");
  754.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","toolkit.jar"),"content/global/");
  755.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","toolkit.jar"),"content/global-region/");
  756.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/autoconfig/");
  757.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/cookie/");
  758.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/wallet/");
  759.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","content-packs.jar"), "content/content-packs/");
  760.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/communicator/");
  761.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/communicator/downloadmanager/");
  762.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/communicator-region/");
  763.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/branding/");
  764.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/editor/");
  765.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/editor-region/");
  766.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/navigator/");
  767.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/navigator-region/");
  768.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/necko/");
  769.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/mozldap/");
  770.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","classic.jar"),"skin/classic/communicator/");
  771.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","classic.jar"),"skin/classic/editor/");
  772.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","classic.jar"),"skin/classic/global/");
  773.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","classic.jar"),"skin/classic/messenger/");
  774.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","classic.jar"),"skin/classic/navigator/");
  775.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","modern.jar"),"skin/modern/communicator/");
  776.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","modern.jar"),"skin/modern/editor/");
  777.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","modern.jar"),"skin/modern/global/");
  778.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","modern.jar"),"skin/modern/messenger/");
  779.     registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","modern.jar"),"skin/modern/navigator/");
  780.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","help.jar"),"content/help/");
  781.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/xbl-marquee/");
  782.     registerChrome(CONTENT | DELAYED_CHROME, getFolder("Chrome","comm.jar"),"content/p3p/");
  783.  
  784.     // We need to register the psm chrome files.
  785.     // We're checking to see if they exist first in case
  786.     // they were not built and packaged up.
  787.     var pki = getFolder("Chrome", "pippki.jar");
  788.     if(File.exists(pki)) 
  789.       registerChrome(CONTENT | DELAYED_CHROME, pki, "content/pippki/");
  790.  
  791.     var nss = getFolder("Chrome", "pipnss.jar");
  792.     if(File.exists(nss)) 
  793.       registerChrome(CONTENT | DELAYED_CHROME, nss, "content/pipnss/");
  794.  
  795.     /* Log files that are created after the installer is done, so they can be uninstalled */
  796.     logComment("Installing: "    + fProgram + ".autoreg");
  797.     logComment("Installing: "    + fProgram + "Xpcs Registry.dat");
  798.     logComment("Installing: "    + fProgram + "xpcom.log");
  799.     logComment("Create Folder: " + fProgram + "components");
  800.     logComment("Installing: "    + fProgram + "components\\xpti.dat");
  801.     logComment("Installing: "    + fProgram + "components\\xptitemp.dat");
  802.     logComment("Installing: "    + fProgram + "components\\compreg.dat");
  803.     logComment("Create Folder: " + fProgram + "components\\Netscape");
  804.     logComment("Create Folder: " + fProgram + "components\\Netscape\\MozillaTrunk");
  805.     logComment("Installing: "    + fProgram + "components\\Netscape\\MozillaTrunk\\manifest.ini");
  806.     logComment("Installing: "    + fProgram + "components\\Netscape\\MozillaTrunk\\permdata.box");
  807.     logComment("Installing: "    + fProgram + "components\\Netscape\\MozillaTrunk\\Talkback.ini");
  808.     logComment("Create Folder: " + fProgram + "chrome");
  809.     logComment("Installing: "    + fProgram + "chrome\\installed-chrome.txt");
  810.     logComment("Installing: "    + fProgram + "chrome\\chrome.rdf");
  811.     logComment("Installing: "    + fProgram + "chrome\\overlays.rdf");
  812.     logComment("Installing: "    + fProgram + "chrome\\stylesheets.rdf");
  813.  
  814.     err = getLastError();
  815.     if (err == SUCCESS)
  816.     {
  817.       err = performInstall();
  818.       logComment("performInstall() returned: " + err);
  819.       if (! ('buildID' in Install))
  820.       {
  821.         logComment("Running Pre-Mozilla 0.9.1");
  822.         initInstall("Post-install Cleanup Utility", "Browser/xpicleanup", "1.0.5.2006091003");
  823.         cleanupUtility = getFolder(fProgram, "xpicleanup.exe");
  824.         err = File.execute(cleanupUtility);
  825.         logComment("execute() returned: " + err);
  826.         err = performInstall();
  827.       }
  828.     }
  829.     else
  830.       cancelInstall(err);
  831.   }
  832.   else
  833.     cancelInstall(err);
  834. }
  835. else
  836.   cancelInstall(INSUFFICIENT_DISK_SPACE);
  837.  
  838.  
  839. // end main
  840.